package com.om.calculator;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;

import org.junit.Before;
import org.junit.Test;

public class RpnCalculatorTest {
    private RpnCalculator calculator;

    @Before
    public void initializeCalculator() {
        calculator = new RpnCalculator();
    }
    
    private void validateResultIs(int expectedValue) {
        int sum = calculator.top();
        assertEquals(expectedValue, sum);
    }
    
    @Test
    public void canAddEmpty() {
        calculator.add();
        validateResultIs(0);
    }

    @Test
    public void threeNumberAddingOnlyLastTwo() {
        calculator.enter(3);
        calculator.enter(4);
        calculator.enter(4);
        calculator.add();
        int sum = calculator.top();
        assertEquals(8, sum);
    }

    @Test
    public void canAddTwoNumbers() {
        calculator.enter(40);
        calculator.enter(-13);
        calculator.add();
        int sum = calculator.top();
        assertEquals(27, sum);
    }

    @Test
    public void canCreateCalculator() {
        RpnCalculator calculator = new RpnCalculator();
        assertNotNull(calculator);
    }

}
